#pragma once

#include "AbstractEntity.h"
#include "ItemData.h"
#include "ItemBlockState.h"
#include "ItemBlockStateInBlock.h"
#include "ItemBlockStateFired.h"


class ItemBlockEntity : public AbstractEntity{
protected: 
	ItemData* _data;
	
	ItemBlockState* _state;
	ItemBlockStateFired* _stateFired;
	ItemBlockStateInBlock* _stateInBlock;

public:	
	ItemBlockEntity	(int id, int itemType, double x, double y);
	
	virtual void update(long time);

	virtual void draw(long time);

	virtual AbstractData* getAbstractData();

	virtual void initData();

	virtual void updateData(int action, int action_data);

	virtual ItemData* getItemData();

	virtual void checkState();
};
